package model;

import java.io.Serializable;
import javax.persistence.*;
import java.util.List;


/**
 * The persistent class for the intervenant database table.
 * 
 */
@Entity
@NamedQuery(name="Intervenant.findAll", query="SELECT i FROM Intervenant i")
public class Intervenant implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	private int idIntervenat;

	private String fnction;

	private String type;

	//bi-directional many-to-one association to Utilisateur
	@ManyToOne
	@JoinColumn(name="idUtilisateur")
	private Utilisateur utilisateur;

	//bi-directional many-to-one association to Mail
	@OneToMany(mappedBy="intervenant")
	private List<Mail> mails;

	//bi-directional many-to-one association to Suiviformation
	@OneToMany(mappedBy="intervenant")
	private List<Suiviformation> suiviformations;

	public Intervenant() {
	}

	public int getIdIntervenat() {
		return this.idIntervenat;
	}

	public void setIdIntervenat(int idIntervenat) {
		this.idIntervenat = idIntervenat;
	}

	public String getFnction() {
		return this.fnction;
	}

	public void setFnction(String fnction) {
		this.fnction = fnction;
	}

	public String getType() {
		return this.type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public Utilisateur getUtilisateur() {
		return this.utilisateur;
	}

	public void setUtilisateur(Utilisateur utilisateur) {
		this.utilisateur = utilisateur;
	}

	public List<Mail> getMails() {
		return this.mails;
	}

	public void setMails(List<Mail> mails) {
		this.mails = mails;
	}

	public Mail addMail(Mail mail) {
		getMails().add(mail);
		mail.setIntervenant(this);

		return mail;
	}

	public Mail removeMail(Mail mail) {
		getMails().remove(mail);
		mail.setIntervenant(null);

		return mail;
	}

	public List<Suiviformation> getSuiviformations() {
		return this.suiviformations;
	}

	public void setSuiviformations(List<Suiviformation> suiviformations) {
		this.suiviformations = suiviformations;
	}

	public Suiviformation addSuiviformation(Suiviformation suiviformation) {
		getSuiviformations().add(suiviformation);
		suiviformation.setIntervenant(this);

		return suiviformation;
	}

	public Suiviformation removeSuiviformation(Suiviformation suiviformation) {
		getSuiviformations().remove(suiviformation);
		suiviformation.setIntervenant(null);

		return suiviformation;
	}

}